package com.turnengine.client.local.action.command;

import com.javabi.codebuilder.generated.IGeneratedCommand;
import com.turnengine.client.local.action.bean.IActionTarget;
import com.turnengine.client.local.action.enums.ActionTargetType;
import com.turnengine.client.local.command.IStaticSetupCommand;
import com.turnengine.client.local.unit.enums.UnitRelation;
import com.turnengine.client.local.unit.enums.UnitType;

/**
 * The I Add Action Target.
 */
public interface IAddActionTarget extends IGeneratedCommand, IStaticSetupCommand<IActionTarget>, Comparable<IAddActionTarget> {

	/**
	 * Returns the login id.
	 * @return the login id.
	 */
	long getLoginId();

	/**
	 * Returns the instance id.
	 * @return the instance id.
	 */
	int getInstanceId();

	/**
	 * Returns the action id.
	 * @return the action id.
	 */
	int getActionId();

	/**
	 * Returns the target.
	 * @return the target.
	 */
	ActionTargetType getTarget();

	/**
	 * Returns the type.
	 * @return the type.
	 */
	UnitType getType();

	/**
	 * Returns the relation.
	 * @return the relation.
	 */
	UnitRelation getRelation();

	/**
	 * Sets the login id.
	 * @param loginId the login id to set.
	 */
	void setLoginId(long loginId);

	/**
	 * Sets the instance id.
	 * @param instanceId the instance id to set.
	 */
	void setInstanceId(int instanceId);

	/**
	 * Sets the action id.
	 * @param actionId the action id to set.
	 */
	void setActionId(int actionId);

	/**
	 * Sets the target.
	 * @param target the target to set.
	 */
	void setTarget(ActionTargetType target);

	/**
	 * Sets the type.
	 * @param type the type to set.
	 */
	void setType(UnitType type);

	/**
	 * Sets the relation.
	 * @param relation the relation to set.
	 */
	void setRelation(UnitRelation relation);
}
